With the accelerating growth of Internet and intranet communication, high-bandwidth applications (such as streaming video), and large information databases, the need for networked storage systems has increased dramatically. The key apparatus in such a networked storage system is the storage controller. One primary function of storage controllers in a networked storage system is to assume the responsibility of processing storage requests so that the host processors are free to perform other processing tasks. Storage controllers manage all of the incoming, outgoing, and resident data in the system through specialized architectures, algorithms, and hardware. However, it should also be recognized that there is also a need for high performance non-networked storage systems. Thus, while this application consistently discusses network storage systems, it should be recognized that the invention may also be practiced by non-networked storage systems. More particularly, the storage controller of the present invention also may be adapted for non-networked storage systems.
Typical storage controller systems use cluster allocation and volume mapping of those clusters to manage data, I/O, and other administrative tasks within the networked storage system. Clusters reside on volumes formed of a portion of a disk drive or many disk drives in a redundant array of independent disks (RAID) storage architecture. Clusters are typically identical in size; however, each may be assigned to a different RAID architecture. Their physical locations are stored in volume maps, which are updated as new clusters are allocated or deleted. Clusters provide system granularity and aid in the transfer and management of large quantities of data by breaking them down into smaller quantities of data.
The storage system is monitored by one or more data collection mechanisms to evaluate system performance and compare the current performance output to the required output, which is usually outlined in a Quality of Service (QoS) contract. The statistical data gathered by the statistics collection system facilitates achievement of a desired QoS.
In a networked storage system, it is critical that the system perform to a given QoS. In general, each host that accesses the networked storage system establishes a service level agreement (SLA) that defines the minimum guaranteed bandwidth and latency that the host can expect from the networked storage system. The SLA is established to ensure that the system performs at the level specified in the QoS contract.
QoS, redundancy, and performance requirements may not be met after the system has been running for a certain period because the volume profiles that define the system configuration are static and were created prior to system launch. Therefore, any deviation in the types and amounts of data to be processed may affect system performance. In other words, system needs may change over time and, as a result, performance may drop. Many RAID storage architectures account for this decrease in productivity by over-provisioning the system. Over-provisioning is accomplished by increasing the number of drives in the system. More drive availability in the system means more storage space to handle inefficient use of the existing system resources. This solution, however, is a waste of existing system resources and increases costs.
U.S. Pat. No. 6,487,562, “DYNAMICALLY MODIFYING SYSTEM PARAMETERS IN DATA STORAGE SYSTEM,” describes a system and method for dynamically modifying parameters in a data storage system such as a RAID system. Such parameters include QoS parameters, which control the speed at which system operations are performed for various parts of a data storage system. The storage devices addressable as logical volumes can be individually controlled and configured for preferred levels of performance and service. The parameters can be changed at any time while the data storage system is in use, with changes taking effect very quickly. These parameter changes are permanently stored and therefore allow system configurations to be maintained. A user interface allows a user or system administrator to easily observe and configure system parameters, preferably using a graphic user interface (GUI) that allows a user to select system changes along a scale from minimum to a maximum.
The method described in the '562 patent offers a solution to over-provisioning in a RAID architecture by introducing a GUI and using external human intervention. While this saves physical disk drive and hardware costs, the costs are now transferred to paying a person to manage and operate the system on a daily basis. Furthermore, the system is prone to human error in the statistical data analysis of the system performance and, as a result, the system may not be filly optimized.
Therefore, it is an object of the present invention to provide a method of optimizing system resources and capabilities in a networked storage system.
It is another object of the present invention to provide a method of configuring system resources that improves system performance.
It is yet another object of the present invention to provide a means to eliminate the need for over-provisioning in a networked storage system.
It is yet another object of the present invention to provide a means to decrease cost in a networked storage system by efficiently utilizing existing system resources.